ImmutableLaunchpad

0x135492b3ccb2cb64749f91332f929f49a1deed3f

Verification
Verified
v0.8.20+commit.a1b79de6
Type
Contract
24,009 bytes
ABI entries
120
53 read · 17 write
License
none

Contract information

Address
0x135492b3ccb2cb64749f91332f929f49a1deed3f
Chain
Robinhood Chain (4663)
Compiler
v0.8.20+commit.a1b79de6
Optimization
Enabled
Creation tx
0x64a0b52369…5766370223

Token

Not a token

This contract does not expose ERC-20 metadata.

Read contract (53)

AMM_FC_SPLIT_BPS()uint16
CURVE_FEE_CREATOR_BPS()uint16
DEFAULT_CURVE_ID()uint32
LOCKED_LP()address
MAX_CURVE_FEE_BPS()uint16
MAX_GRADUATION_CUT_CAP()uint16
MIN_CURVE_FEE_BPS()uint16
MIN_Q0()uint256
MIN_RAISE_THRESHOLD()uint256
TOTAL_SUPPLY()uint256
activeCurveBacking()uint256
allLaunches(uint256)address
allLaunchesLength()uint256
allPairs(uint256)address
allPairsLength()uint256
amountRaised(address)uint256
claimable(address)uint256
curveComplete(address)bool
curveCount()uint32
curveIdOf(address)uint32
curveImplementation(uint32)address
curveOf(address)uint32, address
curves(uint32)address, bytes32, bool
escrowOf(address)address
feeController()address
feeTo()address
getLaunch(address)tuple
getPair(address, address)address
governance()address
graduationPoolDeployer()address
guardian()address
initialize(tuple)
isLaunchToken(address)bool
isPool(address)bool
launchEscrowDeployer()address
launches(address)address, address, uint16, uint16, uint32, address, uint256, uint256, uint256, bool, address
legacyPoolTokensAtThreshold(uint256, uint256, uint16)uint256
lpRecipient()address
managedNative()uint256
maxGraduationCutBps()uint16
maxManagedNative()uint256
minimumManagedNative()uint256
paused()bool
poolOf(address)address
protocolCutBps()uint16
q0()uint256
quoteBuy(address, uint256)uint256
quoteSell(address, uint256)uint256
raiseThreshold(address)uint256
raiseThreshold()uint256
totalClaimableNative()uint256
treasury()address
wNative()address

Events (17)

BuyClaimNativeSkippedClaimedCurveAvailabilitySetCurveFeeCurveRegisteredCurveSelectedGraduatedGuardianSetInitializedLaunchCreatedMaxManagedNativeSetPairCreatedPausedSetPayoutWalletSetSellTreasurySet

ABI

[
  {
    "inputs": [
      {
        "components": [
          {
            "internalType": "address",
            "name": "feeController",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "wNative",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "governance",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "treasury",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "guardian",
            "type": "address"
          },
          {
            "internalType": "bool",
            "name": "initiallyPaused",
            "type": "bool"
          },
          {
            "internalType": "uint256",
            "name": "q0",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "raiseThreshold",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "maxManagedNative",
            "type": "uint256"
          },
          {
            "internalType": "uint16",
            "name": "protocolCutBps",
            "type": "uint16"
          },
          {
            "internalType": "uint16",
            "name": "maxGraduationCutBps",
            "type": "uint16"
          },
          {
            "internalType": "address",
            "name": "lpRecipient",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "initialCurve",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "poolDeployer",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "escrowDeployer",
            "type": "address"
          }
        ],
        "internalType": "struct Launchpad.LaunchpadInitParams",
        "name": "params",
        "type": "tuple"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [],
    "name": "AlreadyGraduated",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint16",
        "name": "cap",
        "type": "uint16"
      }
    ],
    "name": "CreatorCutTooHigh",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "implementation",
        "type": "address"
      }
    ],
    "name": "CurveAlreadyRegistered",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint32",
        "name": "curveId",
        "type": "uint32"
      },
      {
        "internalType": "bytes32",
        "name": "expected",
        "type": "bytes32"
      },
      {
        "internalType": "bytes32",
        "name": "actual",
        "type": "bytes32"
      }
    ],
    "name": "CurveCodeChanged",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "CurveComplete",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint16",
        "name": "min",
        "type": "uint16"
      },
      {
        "internalType": "uint16",
        "name": "max",
        "type": "uint16"
      }
    ],
    "name": "CurveFeeOutOfRange",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint32",
        "name": "curveId",
        "type": "uint32"
      },
      {
        "internalType": "address",
        "name": "expected",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "actual",
        "type": "address"
      }
    ],
    "name": "CurveImplementationChanged",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint32",
        "name": "curveId",
        "type": "uint32"
      }
    ],
    "name": "CurveNotEnabled",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint32",
        "name": "curveId",
        "type": "uint32"
      }
    ],
    "name": "CurveNotRegistered",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "expected",
        "type": "bytes32"
      },
      {
        "internalType": "bytes32",
        "name": "actual",
        "type": "bytes32"
      }
    ],
    "name": "EscrowDeployerCodeChanged",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "FailedNativeTransfer",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint16",
        "name": "requiredCreatorBps",
        "type": "uint16"
      },
      {
        "internalType": "uint16",
        "name": "actualCreatorBps",
        "type": "uint16"
      }
    ],
    "name": "FeeControllerCapTooLow",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ImmutableInitializationDisabled",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidCurve",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidFeeController",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidInitialization",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidPayoutWallet",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "LaunchNotFound",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "currentManagedNative",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "requestedMaxManagedNative",
        "type": "uint256"
      }
    ],
    "name": "ManagedNativeCapBelowCurrent",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "maxManagedNative",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "attemptedManagedNative",
        "type": "uint256"
      }
    ],
    "name": "ManagedNativeCapExceeded",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "minimumManagedNative",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "requestedMaxManagedNative",
        "type": "uint256"
      }
    ],
    "name": "ManagedNativeCapTooLow",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotGraduationReady",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotInitializing",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ParamsOutOfDomain",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "expected",
        "type": "bytes32"
      },
      {
        "internalType": "bytes32",
        "name": "actual",
        "type": "bytes32"
      }
    ],
    "name": "PoolDeployerCodeChanged",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "Slippage",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "Unauthorized",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint32",
        "name": "curveId",
        "type": "uint32"
      },
      {
        "internalType": "bool",
        "name": "expected",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "actual",
        "type": "bool"
      }
    ],
    "name": "UnexpectedCurveAvailability",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint32",
        "name": "expected",
        "type": "uint32"
      },
      {
        "internalType": "uint32",
        "name": "actual",
        "type": "uint32"
      }
    ],
    "name": "UnexpectedCurveId",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "WhenPaused",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ZeroAmount",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "buyer",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amountIn",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokensOut",
        "type": "uint256"
      }
    ],
    "name": "Buy",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "payoutWallet",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "ClaimNativeSkipped",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "Claimed",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint32",
        "name": "curveId",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "enabledForNewLaunches",
        "type": "bool"
      }
    ],
    "name": "CurveAvailabilitySet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "payer",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "creatorFee",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "protocolFee",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "isBuy",
        "type": "bool"
      }
    ],
    "name": "CurveFee",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint32",
        "name": "curveId",
        "type": "uint32"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "implementation",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bytes32",
        "name": "codeHash",
        "type": "bytes32"
      }
    ],
    "name": "CurveRegistered",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint32",
        "name": "curveId",
        "type": "uint32"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "implementation",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "quoteTarget",
        "type": "uint256"
      }
    ],
    "name": "CurveSelected",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "pool",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "totalRaised",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "creatorCut",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "protocolCut",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "poolQuote",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "poolTokens",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "burnedTokens",
        "type": "uint256"
      }
    ],
    "name": "Graduated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "oldGuardian",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newGuardian",
        "type": "address"
      }
    ],
    "name": "GuardianSet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "version",
        "type": "uint64"
      }
    ],
    "name": "Initialized",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "creator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint16",
        "name": "creatorBps",
        "type": "uint16"
      },
      {
        "indexed": false,
        "internalType": "uint16",
        "name": "curveFeeBps",
        "type": "uint16"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "payoutWallet",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "string",
        "name": "metadataURI",
        "type": "string"
      }
    ],
    "name": "LaunchCreated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "oldMaxManagedNative",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "newMaxManagedNative",
        "type": "uint256"
      }
    ],
    "name": "MaxManagedNativeSet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "token0",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "token1",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "pair",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "PairCreated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "bool",
        "name": "paused",
        "type": "bool"
      }
    ],
    "name": "PausedSet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "oldWallet",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newWallet",
        "type": "address"
      }
    ],
    "name": "PayoutWalletSet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "seller",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokensIn",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amountOut",
        "type": "uint256"
      }
    ],
    "name": "Sell",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "oldTreasury",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newTreasury",
        "type": "address"
      }
    ],
    "name": "TreasurySet",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "AMM_FC_SPLIT_BPS",
    "outputs": [
      {
        "internalType": "uint16",
        "name": "",
        "type": "uint16"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "CURVE_FEE_CREATOR_BPS",
    "outputs": [
      {
        "internalType": "uint16",
        "name": "",
        "type": "uint16"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "DEFAULT_CURVE_ID",
    "outputs": [
      {
        "internalType": "uint32",
        "name": "",
        "type": "uint32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "LOCKED_LP",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_CURVE_FEE_BPS",
    "outputs": [
      {
        "internalType": "uint16",
        "name": "",
        "type": "uint16"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_GRADUATION_CUT_CAP",
    "outputs": [
      {
        "internalType": "uint16",
        "name": "",
        "type": "uint16"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MIN_CURVE_FEE_BPS",
    "outputs": [
      {
        "internalType": "uint16",
        "name": "",
        "type": "uint16"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MIN_Q0",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MIN_RAISE_THRESHOLD",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "TOTAL_SUPPLY",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "activeCurveBacking",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "allLaunches",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "allLaunchesLength",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "allPairs",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "allPairsLength",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      }
    ],
    "name": "amountRaised",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "minTokensOut",
        "type": "uint256"
      }
    ],
    "name": "buy",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "tokensOut",
        "type": "uint256"
      }
    ],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "claim",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      }
    ],
    "name": "claimAll",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "nativeClaimed",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "poolAmount0",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "poolAmount1",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "beneficiary",
        "type": "address"
      }
    ],
    "name": "claimFor",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "claimable",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "symbol",
        "type": "string"
      },
      {
        "internalType": "uint16",
        "name": "creatorBps",
        "type": "uint16"
      },
      {
        "internalType": "uint16",
        "name": "curveFeeBps",
        "type": "uint16"
      },
      {
        "internalType": "address",
        "name": "payoutWallet",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "metadataURI",
        "type": "string"
      }
    ],
    "name": "createLaunch",
    "outputs": [
      {
        "internalType": "contract LaunchToken",
        "name": "token",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "symbol",
        "type": "string"
      },
      {
        "internalType": "uint16",
        "name": "creatorBps",
        "type": "uint16"
      },
      {
        "internalType": "uint16",
        "name": "curveFeeBps",
        "type": "uint16"
      },
      {
        "internalType": "address",
        "name": "payoutWallet",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "metadataURI",
        "type": "string"
      },
      {
        "internalType": "uint32",
        "name": "curveId",
        "type": "uint32"
      }
    ],
    "name": "createLaunch",
    "outputs": [
      {
        "internalType": "contract LaunchToken",
        "name": "token",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "symbol",
        "type": "string"
      },
      {
        "internalType": "uint16",
        "name": "creatorBps",
        "type": "uint16"
      },
      {
        "internalType": "uint16",
        "name": "curveFeeBps",
        "type": "uint16"
      },
      {
        "internalType": "address",
        "name": "payoutWallet",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "metadataURI",
        "type": "string"
      },
      {
        "internalType": "bytes32",
        "name": "salt",
        "type": "bytes32"
      }
    ],
    "name": "createLaunchVanity",
    "outputs": [
      {
        "internalType": "contract LaunchToken",
        "name": "token",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "symbol",
        "type": "string"
      },
      {
        "internalType": "uint16",
        "name": "creatorBps",
        "type": "uint16"
      },
      {
        "internalType": "uint16",
        "name": "curveFeeBps",
        "type": "uint16"
      },
      {
        "internalType": "address",
        "name": "payoutWallet",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "metadataURI",
        "type": "string"
      },
      {
        "internalType": "bytes32",
        "name": "salt",
        "type": "bytes32"
      },
      {
        "internalType": "uint32",
        "name": "curveId",
        "type": "uint32"
      }
    ],
    "name": "createLaunchVanity",
    "outputs": [
      {
        "internalType": "contract LaunchToken",
        "name": "token",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      }
    ],
    "name": "curveComplete",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "curveCount",
    "outputs": [
      {
        "internalType": "uint32",
        "name": "",
        "type": "uint32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "curveIdOf",
    "outputs": [
      {
        "internalType": "uint32",
        "name": "",
        "type": "uint32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint32",
        "name": "curveId",
        "type": "uint32"
      }
    ],
    "name": "curveImplementation",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      }
    ],
    "name": "curveOf",
    "outputs": [
      {
        "internalType": "uint32",
        "name": "curveId",
        "type": "uint32"
      },
      {
        "internalType": "address",
        "name": "implementation",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint32",
        "name": "",
        "type": "uint32"
      }
    ],
    "name": "curves",
    "outputs": [
      {
        "internalType": "contract ILaunchCurve",
        "name": "implementation",
        "type": "address"
      },
      {
        "internalType": "bytes32",
        "name": "codeHash",
        "type": "bytes32"
      },
      {
        "internalType": "bool",
        "name": "enabledForNewLaunches",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      }
    ],
    "name": "escrowOf",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "feeController",
    "outputs": [
      {
        "internalType": "contract IFeeController",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "feeTo",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      }
    ],
    "name": "getLaunch",
    "outputs": [
      {
        "components": [
          {
            "internalType": "contract LaunchToken",
            "name": "token",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "creator",
            "type": "address"
          },
          {
            "internalType": "uint16",
            "name": "creatorBps",
            "type": "uint16"
          },
          {
            "internalType": "uint16",
            "name": "curveFeeBps",
            "type": "uint16"
          },
          {
            "internalType": "uint32",
            "name": "curveId",
            "type": "uint32"
          },
          {
            "internalType": "address",
            "name": "payoutWallet",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "tv",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "qv",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "k",
            "type": "uint256"
          },
          {
            "internalType": "bool",
            "name": "graduated",
            "type": "bool"
          },
          {
            "internalType": "address",
            "name": "pool",
            "type": "address"
          }
        ],
        "internalType": "struct Launchpad.Launch",
        "name": "",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "getPair",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "governance",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      }
    ],
    "name": "graduate",
    "outputs": [
      {
        "internalType": "address",
        "name": "pool",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "graduationPoolDeployer",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "guardian",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "internalType": "address",
            "name": "feeController",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "wNative",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "governance",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "treasury",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "guardian",
            "type": "address"
          },
          {
            "internalType": "bool",
            "name": "initiallyPaused",
            "type": "bool"
          },
          {
            "internalType": "uint256",
            "name": "q0",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "raiseThreshold",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "maxManagedNative",
            "type": "uint256"
          },
          {
            "internalType": "uint16",
            "name": "protocolCutBps",
            "type": "uint16"
          },
          {
            "internalType": "uint16",
            "name": "maxGraduationCutBps",
            "type": "uint16"
          },
          {
            "internalType": "address",
            "name": "lpRecipient",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "initialCurve",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "poolDeployer",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "escrowDeployer",
            "type": "address"
          }
        ],
        "internalType": "struct Launchpad.LaunchpadInitParams",
        "name": "",
        "type": "tuple"
      }
    ],
    "name": "initialize",
    "outputs": [],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "isLaunchToken",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "isPool",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "launchEscrowDeployer",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "launches",
    "outputs": [
      {
        "internalType": "contract LaunchToken",
        "name": "token",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "creator",
        "type": "address"
      },
      {
        "internalType": "uint16",
        "name": "creatorBps",
        "type": "uint16"
      },
      {
        "internalType": "uint16",
        "name": "curveFeeBps",
        "type": "uint16"
      },
      {
        "internalType": "uint32",
        "name": "curveId",
        "type": "uint32"
      },
      {
        "internalType": "address",
        "name": "payoutWallet",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tv",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "qv",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "k",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "graduated",
        "type": "bool"
      },
      {
        "internalType": "address",
        "name": "pool",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "q0_",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "raiseThreshold_",
        "type": "uint256"
      },
      {
        "internalType": "uint16",
        "name": "maxGraduationCutBps_",
        "type": "uint16"
      }
    ],
    "name": "legacyPoolTokensAtThreshold",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "lpRecipient",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "managedNative",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxGraduationCutBps",
    "outputs": [
      {
        "internalType": "uint16",
        "name": "",
        "type": "uint16"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxManagedNative",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "minimumManagedNative",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "paused",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      }
    ],
    "name": "poolOf",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "protocolCutBps",
    "outputs": [
      {
        "internalType": "uint16",
        "name": "",
        "type": "uint16"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "q0",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amountIn",
        "type": "uint256"
      }
    ],
    "name": "quoteBuy",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokensIn",
        "type": "uint256"
      }
    ],
    "name": "quoteSell",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      }
    ],
    "name": "raiseThreshold",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "raiseThreshold",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "implementation",
        "type": "address"
      },
      {
        "internalType": "uint32",
        "name": "expectedCurveId",
        "type": "uint32"
      },
      {
        "internalType": "bytes32",
        "name": "expectedCodeHash",
        "type": "bytes32"
      }
    ],
    "name": "registerCurve",
    "outputs": [
      {
        "internalType": "uint32",
        "name": "curveId",
        "type": "uint32"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokensIn",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "minAmountOut",
        "type": "uint256"
      }
    ],
    "name": "sell",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "amountOut",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint32",
        "name": "curveId",
        "type": "uint32"
      },
      {
        "internalType": "bool",
        "name": "expectedEnabled",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "newEnabled",
        "type": "bool"
      },
      {
        "internalType": "address",
        "name": "expectedImplementation",
        "type": "address"
      },
      {
        "internalType": "bytes32",
        "name": "expectedCodeHash",
        "type": "bytes32"
      }
    ],
    "name": "setCurveEnabled",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "guardian_",
        "type": "address"
      }
    ],
    "name": "setGuardian",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "maxManagedNative_",
        "type": "uint256"
      }
    ],
    "name": "setMaxManagedNative",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "paused_",
        "type": "bool"
      }
    ],
    "name": "setPaused",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "newWallet",
        "type": "address"
      }
    ],
    "name": "setPayoutWallet",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "treasury_",
        "type": "address"
      }
    ],
    "name": "setTreasury",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalClaimableNative",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "treasury",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "wNative",
    "outputs": [
      {
        "internalType": "contract IWNative",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]

Source code

// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.20;

import {Launchpad} from "./Launchpad.sol";

/// @title ImmutableLaunchpad
/// @notice Constructor-initialized production Launchpad with no proxy or upgrade path.
/// @dev The inherited external initializer is overridden by a small unconditional revert so the
///      constructor-only validation path is not retained in production runtime bytecode. Governance
///      can operate only the explicit runtime controls exposed by Launchpad, including
///      enabling/disabling append-only curve registrations for future launches; it cannot replace
///      this contract's code or repoint an existing curve ID.
contract ImmutableLaunchpad is Launchpad {
    error ImmutableInitializationDisabled();

    constructor(LaunchpadInitParams memory params) {
        _initialize(params);
    }

    function initialize(LaunchpadInitParams calldata) external pure override {
        revert ImmutableInitializationDisabled();
    }
}
Chain explorer2672msChain node80ms