BaseLaunchFactory
Creates every coin and its bonding curve, keeps each launch's record and frozen fee terms, and graduates a finished curve into its locked Uniswap v4 pool.
Deploys a bonding curve and its launch token for every launcher launch, then graduates the curve into a permanently locked, full-range Uniswap V4 position governed by the shared BaseLaunchHook. Each curve already trades in the quote asset its pool will use, so graduation never converts between assets and therefore needs no price oracle. It stays split into two permissionless phases so a failed pool seed cannot strand a curve's reserves: - graduate: drains the curve's own reserves into this factory. Purely internal bookkeeping, so it is safe to call automatically from within the crossing buy itself. - createGraduatedPool: seeds the new V4 pool with those reserves, and stays retryable until it succeeds.
Part of the contract reference.
Deployed at
Read functions (34)
| Function | What it does |
|---|---|
approvedPairTokensapprovedPairTokens(address pairToken) view returns (bool approved)selector 0x9831705eAnyone | Whether an ERC-20 is approved as a pair asset for new launches. |
buybackVaultbuybackVault() view returns (address)selector 0xf1f5c993Anyone | The buyback vault that locks and vests bought-back coins. |
canLaunchcanLaunch(address launcher) view returns (bool)selector 0x58373f04Anyone | Whether |
CREATOR_FEE_RECIPIENT_EXECUTION_WINDOWCREATOR_FEE_RECIPIENT_EXECUTION_WINDOW() view returns (uint256)selector 0x02d4753dAnyone | A matured override must execute during this window. Expiration prevents an old, forgotten proposal from remaining executable indefinitely. |
CREATOR_FEE_RECIPIENT_TIMELOCKCREATOR_FEE_RECIPIENT_TIMELOCK() view returns (uint256)selector 0x5a83b00aAnyone | Advance notice the protocol owner's creator-fee-recipient override must wait out before it can be executed. The creator's own self-service transferCreatorFeeRecipient is never subject to this delay. |
feeEscrowfeeEscrow() view returns (address)selector 0xc4b7de97Anyone | The fee escrow that holds every claimable fee balance for this launcher set. |
getLaunchConfiggetLaunchConfig(uint256 id) view returns (LaunchConfig)selector 0x1cad862dAnyone | Returns one token launch configuration. |
getLaunchedTokengetLaunchedToken(address token) view returns (LaunchedToken)selector 0x3cf28b5aAnyone | Returns the immutable record for a token created by this factory. |
getLaunchFeePolicygetLaunchFeePolicy(address token) view returns (FeePolicySnapshot)selector 0x470ef5fcAnyone | Returns the fee policy frozen for a launch. |
GRADUATION_RESCUE_DELAYGRADUATION_RESCUE_DELAY() view returns (uint256)selector 0x2d1250b8Anyone | How long a launch must sit in Swept before its reserves may be released manually. Seeding is permissionless and retryable, so this window is what separates a genuinely unseedable launch from one that merely hit a transient failure, and it denies the owner a same-block escape hatch. |
GRADUATION_RESCUE_LONG_DELAYGRADUATION_RESCUE_LONG_DELAY() view returns (uint256)selector 0xfcd6fa8aAnyone | Time after a sweep (30 days) before the owner may rescue the reserves of a launch whose pool seed still looks viable. |
graduationExecutorgraduationExecutor() view returns (address)selector 0xcc6d7a39Anyone | The graduation executor that mints each graduated pool's position. Wired once by the owner. |
graduationGuardgraduationGuard() view returns (address)selector 0x496aa100Anyone | The stateless graduation guard this factory created in its constructor, used to check that a pool seed is mintable. |
launchConfigCountlaunchConfigCount() view returns (uint256)selector 0xae72d871Anyone | Returns the number of launch configurations. |
launchDeployerlaunchDeployer() view returns (address)selector 0x858f5964Anyone | The deployer helper that creates each coin and its curve with CREATE2. |
launchEnabledlaunchEnabled() view returns (bool)selector 0x236a4afbAnyone | Whether launching is open to everyone. While false only whitelisted launchers may launch. |
launchFeelaunchFee() view returns (uint256)selector 0xcf3cf573Anyone | The fixed fee, in wei of ETH, a launch must send as msg.value. It is forwarded to the protocol fee recipient. |
launchForwarderlaunchForwarder() view returns (address)selector 0x9b924452Anyone | The router trusted to launch on behalf of the account that called it (launchTokenFor). |
launchHooklaunchHook() view returns (address)selector 0x403cc96fAnyone | The Uniswap v4 hook every graduated pool uses; it also holds the current fee policy. |
lockerlocker() view returns (address)selector 0xd7b96d4eAnyone | The locker that holds every graduated pool position and the excess coins, forever. |
maxCreatorTaxBpsmaxCreatorTaxBps() view returns (uint256)selector 0xf325a5fbAnyone | The highest creator fee a new launch may choose, in basis points (at most 10%). |
ownerowner() view returns (address)selector 0x8da5cb5bAnyone | Returns the address of the current owner. Inherited from Ownable. |
pairTokenEconomicspairTokenEconomics(address pairToken) view returns (uint256 phantomQuote, uint256 graduationThreshold, uint8 decimals)selector 0x31082134Anyone | Virtual reserve, graduation target and decimals set for an ERC-20 pair asset, in that asset's own units. |
pendingCreatorFeeRecipientpendingCreatorFeeRecipient(address token) view returns (address newRecipient, uint256 effectiveAt, uint256 expiresAt)selector 0x9beacf4aAnyone | An owner-proposed creator fee recipient change for a coin: new recipient, time it becomes executable and time it expires. Zero when none is pending. |
pendingOwnerpendingOwner() view returns (address)selector 0xe30c3978Anyone | Returns the address of the pending owner. Inherited from Ownable2Step. |
permit2permit2() view returns (address)selector 0x12261ee7Anyone | The Permit2 contract used to approve the PositionManager when a pool is seeded. |
poolManagerpoolManager() view returns (address)selector 0xdc4c90d3Anyone | The Uniswap v4 PoolManager graduated pools are created in. |
positionManagerpositionManager() view returns (address)selector 0x791b98bcAnyone | The Uniswap v4 PositionManager that mints each graduated pool's full-range position. |
previewLaunchEconomicspreviewLaunchEconomics(uint256 launchConfigId, address pairToken) view returns (bytes32)selector 0xf718b78cAnyone | Returns the economics digest a launch of Reading the digest and launching in separate transactions still leaves the terms free to move in between; the pin is what makes that movement revert instead of silently repricing the launch. |
renounceOwnershiprenounceOwnership() pureselector 0x715018a6Anyone | Permanently disabled. An ownerless factory could never approve a pairToken, adjust fee ceilings, or recover a creator's fee recipient, and every launch already live would keep depending on those powers. Ownership can still be handed to a new owner via the two-step transfer. |
snipeTaxSecondssnipeTaxSeconds() view returns (uint256)selector 0x6783774bAnyone | Seconds over which the launch tax decays to zero, snapshotted by every new launch. |
snipeTaxStartBpssnipeTaxStartBps() view returns (uint256)selector 0x50e25ac2Anyone | The launch tax a buy pays in the launch second, in basis points of the pair asset spent, snapshotted by every new launch. Zero turns the launch tax off for new launches. |
VERSIONVERSION() view returns (string)selector 0xffa1ad74Anyone | Release of the BaseLaunch launcher contracts. |
whitelistedLauncherswhitelistedLaunchers(address launcher) view returns (bool enabled)selector 0xda3eda65Anyone | Whether an address may launch while public launching is closed. |
Write functions (29)
| Function | What it does |
|---|---|
acceptOwnershipacceptOwnership()selector 0x79ba5097Pending owner | The new owner accepts the ownership transfer. Inherited from Ownable2Step. |
addLaunchConfigaddLaunchConfig(LaunchConfig config) returns (uint256 id)selector 0x0e5b0aaeOwner | Adds a launch configuration new tokens can be deployed against. |
cancelCreatorFeeRecipientChangecancelCreatorFeeRecipientChange(address token)selector 0x6e47a188Owner | Cancels a pending protocol-owner override before it takes effect. |
createGraduatedPoolcreateGraduatedPool(address token) returns (uint256 positionId)selector 0x2f53ef2fAnyone | Initializes the V4 pool with the swept reserves, mints a full-range position directly to the locker, and registers the pool with the launch hook. The curve already holds the pool's quote asset, so this seeds with exactly what it swept and needs no slippage bound. Permissionless and retryable: a launch stays in Swept until a seed succeeds, so a transient failure can never strand reserves. |
executeCreatorFeeRecipientChangeexecuteCreatorFeeRecipientChange(address token)selector 0x3d3d2d58Anyone | Applies a protocol-owner's proposed creator fee recipient change once its timelock has elapsed. Permissionless: anyone can execute an already-matured proposal. |
forceSweptGraduationforceSweptGraduation(address token)selector 0x7aed273eOwner | Sweeps a curve whose seed the preflight refuses, moving its reserves into this factory so the delayed rescue path can return them. The preflight in |
graduategraduate(address token)selector 0xff6d8d05Anyone | Sweeps the curve's remaining quote and token reserves into this factory and halts curve trading. Purely internal to the curve's own balances, so it is safe for the curve to call this automatically the instant a buy crosses the graduation threshold. |
launchTokenlaunchToken(TokenParams params, uint256 launchConfigId, address pairToken, address[] snipeTaxExemptions) payable returns (address token, address curve)selector 0xa72101afAnyone while launches are open, otherwise a whitelisted launcher | Same launch flow, plus a creator-declared list of wallets exempted from the snipe tax before trading opens to anyone else. This is the sanctioned pathway for organized teams that bundle their opening buys across several wallets: declared wallets clear at the untaxed price during the launch window while undeclared snipers pay the decaying tax. |
launchTokenlaunchToken(TokenParams params, uint256 launchConfigId, address pairToken) payable returns (address token, address curve)selector 0xf35abbcfAnyone while launches are open, otherwise a whitelisted launcher | Deploys a bonding curve and its launch token, wires them together, and records the launch. Trading starts immediately on the curve; the graduation pool's pairToken is fixed here, chosen by the caller. The caller and their creator fee recipient are exempted from the snipe tax automatically; a launch with additional bundle wallets should use the overload that takes an exemption list. |
launchTokenForlaunchTokenFor(TokenParams params, uint256 launchConfigId, address pairToken, address originalDeployer, address[] snipeTaxExemptions) payable returns (address token, address curve)selector 0xd6a0eef5Launch forwarder (the router) only | Launches for the initiating user of the trusted atomic launch-and-buy router, with its declared opening-buy exemptions. Only the configured |
rescueCurveFeesrescueCurveFees(address token)selector 0x189eb0f5Owner | Pays a still-trading launch's pending curve fees directly to the protocol and creator recipients, bypassing the escrow, when its quote asset has stopped delivering there. Also the only way to unwedge such a launch's graduation, since |
rescueSweptGraduationrescueSweptGraduation(address token, address recipient)selector 0xdbcb9c76Owner | Releases a swept launch's reserves to |
setBuybackEnabledsetBuybackEnabled(address token, bool enabled)selector 0xb18f1db1Creator fee recipient (on or off), or owner (off only) | Enables or disables buyback-and-lock for one launch. Only the current creator recipient may enable it, since the buyback slice is funded from the creator's own bucket. The protocol owner may only disable it (a strictly creator-favorable action), so the owner can never force a creator's fees into the buyback vault to capture the protocol's 30% release share against the creator's wishes. |
setCreatorFeeRecipientsetCreatorFeeRecipient(address token, address newRecipient)selector 0xe102c9aaOwner | Proposes a protocol-owner override of a launch's creator fee recipient. Its motivating case is recovery when a creator loses access to their wallet, but the power is deliberately not conditioned on that: the owner may redirect the recipient of any launch. Takes effect only after A matured proposal takes precedence over any creator transfer made while it was pending. |
setGraduationExecutorsetGraduationExecutor(address executor)selector 0xfbec2d8bOwner | One-time wiring of the graduation executor, set after both are deployed since the executor's constructor needs this factory's already-known address. |
setLaunchDeployersetLaunchDeployer(address deployer)selector 0x3a9391e8Owner | One-time wiring of the launch deployer, set after both are deployed since the deployer's constructor needs this factory's already-known address. |
setLaunchEnabledsetLaunchEnabled(bool enabled)selector 0xf56f05b2Owner | Opens or closes launches to non-whitelisted callers. |
setLaunchFeesetLaunchFee(uint256 newLaunchFee)selector 0x5313be2cOwner | Changes the fixed native launch fee. |
setLaunchForwardersetLaunchForwarder(address forwarder)selector 0x767b7c16Owner | Sets the router allowed to preserve the initiating user across an atomic launch-and-buy call. May be rotated when the router is upgraded without replacing the rest of the launch stack. Kept separate from |
setMaxCreatorTaxBpssetMaxCreatorTaxBps(uint256 bps)selector 0x2260aeadOwner | Adjusts the ceiling a creator's chosen trade tax is validated against at launch time. Already-launched tokens keep the immutable tax rate they launched with regardless of later ceiling changes. |
setPairTokenApprovedsetPairTokenApproved(address pairToken, bool approved)selector 0x8763e3dcOwner | Approves or removes a standard ERC-20 quote asset for new launches. Because curves collect the quote asset directly, approving one needs nothing beyond a real token contract and the economics its curves will price against. The stored scale is re-verified here rather than trusted from the economics call. Approval is the point where the asset enters service, and it is the only point at which the address is guaranteed to hold code, so this is what closes the gap for an asset configured before it was deployed or one that has since changed its reported decimals. |
setPairTokenEconomicssetPairTokenEconomics(address pairToken, uint256 phantomQuote, uint256 graduationThreshold, uint8 expectedDecimals)selector 0x092c08bdOwner | Sets the curve economics a quote asset's launches use, in that asset's own decimals. Required before the asset may be approved, and updatable afterwards so the peg to a target native-quote value can be refreshed as rates move. Existing launches are unaffected: each curve receives both figures as constructor immutables, so this only governs launches created after it. |
setSnipeTaxSecondssetSnipeTaxSeconds(uint256 secondsWindow)selector 0xd1ec471aOwner | Sets the decay window new launches snapshot at creation, in seconds. Capped at one minute so a misconfiguration cannot leave a launch effectively closed to the public for minutes; disabling the tax is done through |
setSnipeTaxStartBpssetSnipeTaxStartBps(uint256 bps)selector 0xb20e51afOwner | Sets the launch-second snipe tax that new launches snapshot at creation. Curves already trading keep the figure they launched under. Zero disables the tax for launches created while it is zero; a nonzero figure must exceed the 20% combined base fee ceiling, so the launch-window tax always dominates the ordinary fee take, and stays below 100% so a taxed buy always nets the buyer something. |
setWhitelistedLaunchersetWhitelistedLauncher(address launcher, bool enabled)selector 0x366f0f3eOwner | Grants or revokes permission to launch while the public gate is closed. |
transferCreatorFeeRecipienttransferCreatorFeeRecipient(address token, address newRecipient)selector 0x2931861bCoin's current creator fee recipient | Lets the current creator fee recipient hand off future creator fees for Does not clear a pending protocol-owner override. If one is outstanding, it still executes on schedule and supersedes the address set here. See |
transferOwnershiptransferOwnership(address newOwner)selector 0xf2fde38bOwner | Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting Inherited from Ownable2Step. |
updateLaunchConfigupdateLaunchConfig(uint256 id, LaunchConfig config)selector 0xe73e334aOwner | Replaces an existing launch configuration. Already-launched tokens are unaffected since their pool parameters were snapshotted. |
receivereceive() payableAnyone | Accepts ETH swept out of a graduating curve and any dust the Uniswap PositionManager refunds while seeding a pool. |
Events (25)
| Event | What it means |
|---|---|
BuybackEnabledUpdatedBuybackEnabledUpdated(address indexed token, bool enabled, address indexed controller)topic0 0xbd886f85b7731f66269f57707414d435bf8df930d3357a10becc48a69377f6d5 | A coin's buyback-and-lock was turned on or off; controller is the account that did it. Emitted by setBuybackEnabled |
CreatorFeeRecipientChangeCancelledCreatorFeeRecipientChangeCancelled(address indexed token, address indexed proposedRecipient)topic0 0xbe2de91c1cbef653c760573fff8355c0c851d35ed2a898342b4db556301cccf4 | The owner cancelled a pending creator fee recipient change for a coin. Emitted by cancelCreatorFeeRecipientChange |
CreatorFeeRecipientChangeProposedCreatorFeeRecipientChangeProposed(address indexed token, address indexed currentRecipient, address indexed proposedRecipient, uint256 effectiveAt, uint256 expiresAt)topic0 0x7f119e44c84a715429bee60d30ad2e14afdef6c60bb1a7eaa01290ecf6d1b2e5 | The owner proposed a new creator fee recipient for a coin; it can be executed between effectiveAt and expiresAt. Emitted by setCreatorFeeRecipient |
CreatorFeeRecipientUpdatedCreatorFeeRecipientUpdated(address indexed token, address indexed previousRecipient, address indexed newRecipient)topic0 0x308c390ed1ab5873392818e036cabdf408bc8ad042fbaead3108954ff75ba980 | A coin's creator fee recipient changed, by the creator's own transfer or by an executed owner proposal. Emitted by executeCreatorFeeRecipientChange, transferCreatorFeeRecipient |
GraduationExecutorSetGraduationExecutorSet(address executor)topic0 0xac04674474e93058fae25e6df5dd94f57cdcacfe560a182a2eefc8c6006fbf6f | The graduation executor was wired (once). Emitted by setGraduationExecutor |
GraduationTokensPermanentlyLockedGraduationTokensPermanentlyLocked(address indexed token, uint256 amount)topic0 0xa0a18f5bf205becee8b268d7cf69addab8548ae8ef361791464cf0e0e17c1361 | At graduation, the coins not needed to seed the pool at the curve's final price were locked in the locker forever. Emitted by createGraduatedPool |
LaunchConfigAddedLaunchConfigAdded(uint256 indexed id)topic0 0xedd96c570c6e5ef9add0378e59df53579a283889dc5dab6440ef6eca2ee6c8ce | The owner added a launch configuration. Emitted by addLaunchConfig |
LaunchConfigUpdatedLaunchConfigUpdated(uint256 indexed id)topic0 0x2f8ba78ae68cfd0c82c7756c540eaf4eead3341aef9ccebcb91d546bff10d62b | The owner replaced or disabled a launch configuration. Emitted by updateLaunchConfig |
LaunchDeployerSetLaunchDeployerSet(address deployer)topic0 0xd5ea7aa3e328a0594dcf6914cd9e5369779efaa194ee4dd4c5afcad4f4ebbb0c | The launch deployer was wired (once). Emitted by setLaunchDeployer |
LaunchEnabledUpdatedLaunchEnabledUpdated(bool enabled)topic0 0x4f1ea5016c51c2f82324e00e9b8a4a95ee5aeaa10c653dabaec5f1bc9047ba0b | Public launching was opened or closed. Emitted by setLaunchEnabled |
LaunchFeeUpdatedLaunchFeeUpdated(uint256 launchFee)topic0 0xc799be5eb19a1a6d6ba7368d21e2bc367c8a335e4a07cd3d954482e6f714d3c5 | The launch fee changed. Emitted by setLaunchFee |
LaunchForceSweptLaunchForceSwept(address indexed token)topic0 0x52c1a28345695afc7f6b7629133124dec5d61ee745affd65e4fd2a776bc05840 | The owner swept a finished curve whose pool seed the guard refuses, so the delayed rescue can return its reserves. Emitted by forceSweptGraduation |
LaunchForwarderSetLaunchForwarderSet(address forwarder)topic0 0x56b32d3633fed72f97c4df44a78b5fa04f1d662d4bddebcd8a9b216d26d093ad | The trusted launch forwarder (router) changed. Emitted by setLaunchForwarder |
LaunchGraduationRescuedLaunchGraduationRescued(address indexed token, address indexed recipient, uint256 quoteAmount, uint256 tokenAmount)topic0 0x7017304fdd491394686dce984eac721f0be1a22228346210f16694772bde44ca | The owner released a swept launch's reserves to a recipient after the rescue delay. Emitted by rescueSweptGraduation |
LaunchSweptLaunchSwept(address indexed token, uint256 quoteOut, uint256 tokenOut)topic0 0xcdb72f157fd3666758a6ce201387ffb52038c7562e4fff352828da1096c4b6b4 | Graduation phase one: the curve's reserves moved into the factory and curve trading stopped. Emitted by forceSweptGraduation, graduate |
MaxCreatorTaxUpdatedMaxCreatorTaxUpdated(uint256 bps)topic0 0x3e99ceb3e222d2214d53dacca902810db845f156f78152fdc076be628c4e9a40 | The ceiling on the creator fee changed. Emitted by setMaxCreatorTaxBps |
OwnershipTransferredOwnershipTransferred(address indexed previousOwner, address indexed newOwner)topic0 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 | Ownership moved to a new owner (at deployment, or when a pending owner accepted). Emitted by acceptOwnership, |
OwnershipTransferStartedOwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)topic0 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700 | The owner named a pending owner; ownership moves when that account accepts. Emitted by transferOwnership |
PairTokenApprovalUpdatedPairTokenApprovalUpdated(address indexed pairToken, bool approved)topic0 0x060d1992d069dc524985f328329aae36102a017c59733c5c91fc0691ee0703b6 | An ERC-20 pair asset was approved or removed for new launches. Emitted by setPairTokenApproved |
PairTokenEconomicsUpdatedPairTokenEconomicsUpdated(address indexed pairToken, uint256 phantomQuote, uint256 graduationThreshold, uint8 decimals)topic0 0x67d517ee0e305d608b8410ddef27bbd2ed964d843d9b936e84ea2ad1bd65e5d1 | The virtual reserve and graduation target of an ERC-20 pair asset changed. Emitted by setPairTokenEconomics |
PoolGraduatedPoolGraduated(address indexed token, uint256 positionId, uint256 tokenAmount, uint256 pairTokenAmount)topic0 0x0a44ef75df69c534f43cd6c1aa3ef8983065fe5fe79ef9e79f6494e6f258c259 | Graduation phase two: the Uniswap v4 pool was created and seeded, and its position locked. Emitted by createGraduatedPool |
SnipeTaxSecondsUpdatedSnipeTaxSecondsUpdated(uint256 secondsWindow)topic0 0x2b1bf8cf5a401a6dd314ae29520988783e31f0e50ec734aa9ef26b8b7ff24a1f | The launch tax decay window for new launches changed. Emitted by setSnipeTaxSeconds |
SnipeTaxStartBpsUpdatedSnipeTaxStartBpsUpdated(uint256 bps)topic0 0x82d0fc041b26338f6e9cc240adde9cbe5b20064b4cb39ab96c953d5643687b1e | The starting launch tax for new launches changed. Emitted by setSnipeTaxStartBps |
TokenLaunchedTokenLaunched(address indexed token, address indexed curve, address indexed deployer, address pairToken, uint256 launchConfigId, uint256 graduationThreshold)topic0 0x8d4aad4953d0ca700d468f3753aa14432d1b35b43ec6409f051fb6aa43a89607 | A coin and its bonding curve were created. deployer is the account the launch was made for. Emitted by launchToken, launchToken (4 args), launchTokenFor |
WhitelistedLauncherUpdatedWhitelistedLauncherUpdated(address indexed launcher, bool enabled)topic0 0xef2b562a67f01ed4b7c4265ec09b539039c6d5dd7e752191d3940508c3dc0068 | An address was added to or removed from the launch whitelist. Emitted by setWhitelistedLauncher |
Structs
| Struct | Fields, in ABI order |
|---|---|
FeePolicySnapshot | uint16 protocolFeeShareBps, uint16 buybackBurnBps, uint16 hookFeeBps, uint16 maxInternalPriceImpactBps |
LaunchConfig | uint256 supply, uint256 curveFeeBps, uint256 phantomQuote, uint256 graduationThreshold, uint24 poolFee, int24 tickSpacing, bool enabled |
LaunchedToken | address token, address curve, address deployer, address creatorFeeRecipient, address pairToken, uint256 graduationThreshold, uint24 poolFee, int24 tickSpacing, uint16 creatorTaxBps, bool buybackEnabled, GraduationPhase phase, uint256 sweptQuote, uint256 sweptTokens, uint256 sweptAt, bool exists |
Socials | string twitter, string telegram, string discord, string website, string farcaster |
TokenParams | string name, string symbol, string logo, string description, Socials socials, address creatorFeeRecipient, uint16 creatorTaxBps, bool buybackEnabled, bytes32 expectedEconomics, bytes32 salt |
Addresses are listed for launcher 2.1.0, where new coins launch, and for launcher 2.0, which keeps serving the coins launched before the cutover. A coin stays on the set that launched it. The functions and events are the 2.1.0 contracts'; the 2.0 contracts are an earlier version of the same code and have no interface registry, so check a 2.0 contract's verified source on Basescan before relying on a detail listed here.