interface Launchpad

constructor(address uniV2Router, address gteRouter);

Reads

function BASE_SCALING() external view returns (uint256);
function BONDING_SUPPLY() external view returns (uint256);
function LAUNCH_FEE() external view returns (uint256);
function QUOTE_SCALING() external view returns (uint256);
function TOTAL_SUPPLY() external view returns (uint256);
function bondingCurve() external view returns (address);

Writes

function buy(
address token,
address recipient,
uint256 amountOutBase,
uint256 maxAmountInQuote
) external returns (
uint256 amountOutBaseActual,
uint256 amountInQuoteActual
);

function cancelOwnershipHandover() external payable;
function completeOwnershipHandover(address pendingOwner) external payable;

function eventNonce() external view returns (uint256);
function gteRouter() external view returns (address);

function initialize(address owner\_) external;

function launch(
string calldata name,
string calldata symbol,
string calldata mediaURI
) external payable returns (address token);

function launches(address launchToken) external view returns (
bool active,
address bondingCurve,
address quote,
uint256 quoteScaling,
uint256 baseScaling,
uint256 baseSoldFromCurve,
uint256 quoteBoughtByCurve
);

function owner() external view returns (address result);
function ownershipHandoverExpiresAt(address pendingOwner) external view returns (uint256 result);

function pullFees() external;
function quoteAsset() external view returns (address);

function quoteBaseForQuote(
address token,
uint256 quoteAmount,
bool isBuy
) external view returns (uint256 baseAmount);

function quoteQuoteForBase(
address token,
uint256 baseAmount,
bool isBuy
) external view returns (uint256 quoteAmount);

function renounceOwnership() external payable;
function requestOwnershipHandover() external payable;

function sell(
address token,
address recipient,
uint256 amountInBase,
uint256 minAmountOutQuote
) external returns (
uint256 amountInBaseActual,
uint256 amountOutQuoteActual
);

function setVirtualReserves(uint256 virtualBase, uint256 virtualQuote) external;

function transferOwnership(address newOwner) external payable;

function uniV2Router() external view returns (address);

function updateBondingCurve(address newBondingCurve) external;
function updateInitCodeHash(bytes calldata newHash) external;
function updateQuoteAsset(address newQuoteAsset) external;

Events

event BondingCurveUpdated(
address indexed oldCurve,
address indexed newCurve,
uint256 eventNonce
);

event BondingLocked(
address indexed token,
uint256 eventNonce
);

event Initialized(uint64 version);

event LaunchpadDeployed(
address indexed token,
address indexed quoteAsset,
address bondingCurve,
address router,
uint256 eventNonce
);

event OwnershipHandoverCanceled(address indexed pendingOwner);
event OwnershipHandoverRequested(address indexed pendingOwner);

event OwnershipTransferred(
address indexed oldOwner,
address indexed newOwner
);

event QuoteAssetUpdated(
address indexed oldQuoteToken,
address indexed newQuoteToken,
uint256 eventNonce
);

event QuoteScalingUpdated(
uint256 oldQuoteScaling,
uint256 newQuoteScaling,
uint256 eventNonce
);

event Swap(
address indexed buyer,
address indexed token,
int256 baseDelta,
int256 quoteDelta,
uint256 nextAmountSold,
uint256 newPrice,
uint256 eventNonce
);

event TokenLaunched(
address indexed dev,
address indexed token,
address indexed quoteAsset,
address bondingCurve,
uint256 timestamp,
uint256 quoteScaling,
uint256 eventNonce
);

Errors

error AlreadyInitialized();
error BadLaunchFee();
error BondingIncative();
error ETHTransferFailed();
error InvalidCurve();
error InvalidInitialization();
error InvalidQuoteAsset();
error InvalidQuoteScaling();
error InvalidRecipient();
error MissingCredits();
error NewOwnerIsZeroAddress();
error NoHandoverRequest();
error NotInitializing();
error Reentrancy();
error SlippageToleranceExceeded();
error Unauthorized();
error UninitializedCurve();
error UninitializedQuote();